#ifndef HAM_APPLICATION_H
#define HAM_APPLICATION_H

#include "../Common/Logging.h"
#include "Module.h"
#include "ui_Core_Application.h"

namespace ham
{
	class WdgCoreLogging;

	class Application
		: public Module, public Ui::Core_Application
	{
		Q_OBJECT

	public:
		Application(QWidget* parent = 0);
		~Application(void);
		
		QString	getModuleName() const;
		QString getDisplayName() const;
		bool isInit() const;
		
		WdgOptions* getOptionsWdg(QWidget*);
		
		void addMenu(QMenu*);
		void addMainWidget(QWidget*, QString);
		void addToolbarWidget(QWidget*, QString);
		
	public slots:
		void showAboutDlg();
		void showOptionsDlg();
		
	protected:
		bool iInit();
		void applyProperties();

	private:
		WdgCoreLogging*	m_wdgLogging;
		Logging*		m_logging;
	};
}

#endif // HAM_APPLICATION_H